<?php defined('SYSPATH') or die('No direct script access.');

// -- Environment setup --------------------------------------------------------

// Load the core Kohana class
require SYSPATH.'classes/kohana/core'.EXT;

if (is_file(APPPATH.'classes/kohana'.EXT))
{
	// Application extends the core
	require APPPATH.'classes/kohana'.EXT;
}
else
{
	// Load empty core extension
	require SYSPATH.'classes/kohana'.EXT;
}

/**
 * Set the default time zone.
 *
 * @see  http://kohanaframework.org/guide/using.configuration
 * @see  http://php.net/timezones
 */
date_default_timezone_set('Asia/Ho_Chi_Minh');

/**
 * Set the default locale.
 *
 * @see  http://kohanaframework.org/guide/using.configuration
 * @see  http://php.net/setlocale
 */
setlocale(LC_ALL, 'en_US.utf-8');

/**
 * Enable the Kohana auto-loader.
 *
 * @see  http://kohanaframework.org/guide/using.autoloading
 * @see  http://php.net/spl_autoload_register
 */
spl_autoload_register(array('Kohana', 'auto_load'));

/**
 * Enable the Kohana auto-loader for unserialization.
 *
 * @see  http://php.net/spl_autoload_call
 * @see  http://php.net/manual/var.configuration.php#unserialize-callback-func
 */
ini_set('unserialize_callback_func', 'spl_autoload_call');

// -- Configuration and initialization -----------------------------------------

/**
 * Set the default language
 */
I18n::lang('vi');

/**
 * Set Kohana::$environment if a 'KOHANA_ENV' environment variable has been supplied.
 *
 * Note: If you supply an invalid environment name, a PHP warning will be thrown
 * saying "Couldn't find constant Kohana::<INVALID_ENV_NAME>"
 */

/**
 * Change Enviroment
 */
Kohana::$environment = Kohana::DEVELOPMENT;

if (isset($_SERVER['KOHANA_ENV']))
{
	Kohana::$environment = constant('Kohana::'.strtoupper($_SERVER['KOHANA_ENV']));
}

/**
 * Initialize Kohana, setting the default options.
 *
 * The following options are available:
 *
 * - string   base_url    path, and optionally domain, of your application   NULL
 * - string   index_file  name of your index file, usually "index.php"       index.php
 * - string   charset     internal character set used for input and output   utf-8
 * - string   cache_dir   set the internal cache directory                   APPPATH/cache
 * - boolean  errors      enable or disable error handling                   TRUE
 * - boolean  profile     enable or disable internal profiling               TRUE
 * - boolean  caching     enable or disable internal caching                 FALSE
 */
Kohana::init(array(
	'base_url'   => 'http://localhost/wl/',
    'index_file' => '',
    'errors' => TRUE,
    'profile' => FALSE,
    'caching' => FALSE,
));

/**
 * Attach the file write to logging. Multiple writers are supported.
 */
Kohana::$log->attach(new Log_File(APPPATH.'logs'));

/**
 * Attach a file reader to config. Multiple readers are supported.
 */
Kohana::$config->attach(new Config_File);

/**
 * Enable modules. Modules are referenced by a relative or absolute path.
 */
Kohana::modules(array(
    'doctrine'   => MODPATH.'doctrine',
	'category'	 => MODPATH.'category',
	'article'	 => MODPATH.'article',
	'land'		 => MODPATH.'land',
	'clgt'		 => MODPATH.'clgt',
    'setting'    => MODPATH.'setting',
    'user'       => MODPATH.'user',
    'ads'        => MODPATH.'ads',
	'purifier'	 => MODPATH.'purifier',
    'mailer'     => MODPATH.'mailer',
    'photo'      => MODPATH.'photo',
	// 'image'      => MODPATH.'image',      // Image manipulation
	// 'orm'        => MODPATH.'orm',        // Object Relationship Mapping
	'unittest'   => MODPATH.'unittest',   // Unit testing
	// 'userguide'  => MODPATH.'userguide',  // User guide and API documentation
	));

/**
 * Set the routes. Each route must have a minimum of a name, a URI and a set of
 * defaults for the URI.
 */
Route::set('paper','bao-chi(/<id>-<slug>)(/p/<page>)',array(
    'id' => '[0-9]+',
    'slug' => '[a-zA-Z0-9-]+' 
))->defaults(array(
    'controller' => 'page',
    'action' => 'paper',
    'id' => null,
    'slug' => null,
    'page' => 1
));

Route::set('internal','noi-bo(/<id>-<slug>)(/p/<page>)',array(
    'id' => '[0-9]+',
    'slug' => '[a-zA-Z0-9-]+' 
))->defaults(array(
    'controller' => 'page',
    'action' => 'internal',
    'id' => null,
    'slug' => null,
    'page' => 1
));


Route::set('shareholder','co-dong(/<id>-<slug>)(/p/<page>)',array(
    'id' => '[0-9]+',
    'slug' => '[a-zA-Z0-9-]+' 
))->defaults(array(
    'controller' => 'page',
    'action' => 'shareholder',
    'id' => null,
    'slug' => null,
    'page' => 1
));

Route::set('funny','giai-tri(/<id>-<slug>)(/p/<page>)',array(
    'id' => '[0-9]+',
    'slug' => '[a-zA-Z0-9-]+' 
))->defaults(array(
    'controller' => 'page',
    'action' => 'funny',
    'id' => null,
    'slug' => null,
    'page' => 1
));

Route::set('recruitment','tuyen-dung')->defaults(array(
    'controller' => 'page',
    'action' => 'recruitment'
));

Route::set('feng_shui','phong-thuy(/<id>-<slug>)(/p/<page>)',array(
    'id' => '[0-9]+',
    'slug' => '[a-zA-Z0-9-]+' 
))->defaults(array(
    'controller' => 'page',
    'action' => 'feng_shui',
    'id' => null,
    'slug' => null,
    'page' => 1
));

Route::set('project','du-an(/<id>-<slug>)(/p/<page>)',array(
    'id' => '[0-9]+',
    'slug' => '[a-zA-Z0-9-]+' 
))->defaults(array(
    'controller' => 'page',
    'action' => 'project',
    'id' => null,
    'slug' => null,
    'page' => 1
));

/**
 * id and slug of category
 */
Route::set('news-category','tin-tuc/danh-muc(/<id>-<slug>)(/p/<page>)(/o/<order>)',array(
    'id' => '[0-9]+',
    'slug' => '[a-zA-Z0-9-]+',
    'order' => '(desc|asc)'
))->defaults(array(
    'controller' => 'page',
    'action' => 'category',
    'id' => null,
    'slug' => null,
    'page' => 1
));

/**
 * id and slug of article
 */
Route::set('news','tin-tuc(/<id>-<slug>)(/p/<page>)',array(
    'id' => '[0-9]+',
    'slug' => '[a-zA-Z0-9-]+' 
))->defaults(array(
    'controller' => 'page',
    'action' => 'news',
    'id' => null,
    'slug' => null,
    'page' => 1
));

Route::set('about','gioi-thieu')->defaults(array(
    'controller' => 'page',
    'action' => 'about'
));

Route::set('error', 'error(/<action>(/<id>))', array('id' => '.+'))
->defaults(array(
	'controller'	=> 'error',
	'action'		=> '404',
	'id'			=> FALSE,
));

Route::set('admin', 'admin/(<controller>(/<action>(/<id>)))')
	->defaults(array(
		'directory' => 'admin',
		'controller' => 'home',
		'action' => 'index',
	));

Route::set('default', '(<controller>(/<action>(/<id>)))')
	->defaults(array(
		'controller' => 'client',
		'action'     => 'index',
	));

